var roleEditParams = {
    action: {
        findRoleVoByPk: "role/selectRoleVoById/"
        ,findEnumRoleMenu:"index/selectEnumRoleMenu"
        ,addRoel:"role/insertRoleVo"
        ,updateRole:"role/updateRoleVo"
    }
}
$(function () {
    //角色权限全选事件
    $("#rolePerssionGroup").on("click", "dt .layui-form-checkbox", function () {
        if ($(this).hasClass("layui-form-checked")) {//说明选中
            $(this).parent().siblings("dd").find(".layui-form-checkbox").not(".layui-form-checked").click();
            $(this).siblings("input[type='checkbox']", true);
        } else {//说明没选中
            //alert($(this).parent().parent().siblings("dd").find(".layui-form-checkbox.layui-form-checked").length)
            $(this).parent().siblings("dd").find(".layui-form-checkbox.layui-form-checked").click();
            $(this).siblings("input[type='checkbox']", false);
        }
    });
    //角色权限选择事件
    $("#rolePerssionGroup").on("click", "dd .layui-form-checkbox", function () {
        var ddlength = $(this).parent().parent().find("dd").length;//全部的权限功能
        var chdl = $(this).parent().parent().find("dd .layui-form-checked").length;//选中的权限功能
        if (ddlength == chdl) {
            $(this).parent().siblings("dt").find(".layui-form-checkbox").addClass("layui-form-checked");
            $(this).parent().siblings("dt").find("input").prop("checked", true);
        } else {
            $(this).parent().siblings("dt").find(".layui-form-checkbox").removeClass("layui-form-checked");
            $(this).parent().siblings("dt").find("input").prop("checked", false);
        }

    });
    //显示信息
    findEnumRoleMenu();
    //新增角色
    $("#btnSubmit").click(function () {
        addRole();
    })
    //获得地址栏的地址
    var pk = baseUtilParams.GetQueryString("pk");
    if (pk != null) {//说明当前是编辑页面
        //pk = 31;
        //显示角色编辑页面
        showEditData(pk);
    }

    //修改
    $("#btnSubmitUpdate").click(function () {
        updateRole();
    })
});



/**
 * @title:<h3> 显示角色管理编辑页面数据 <h3>
 * @author: loy
 * @date: 2018-10-17 10:01
 * @params pk【主键id】
 * @return
 **/
function showEditData(pk) {
    layui.use('form', function () {
        requestUtilParams.xhrGet(roleEditParams.action.findRoleVoByPk+pk).done(function (res) {
            //alert("请求成功");
            var role = res.data.role;
            var listRolePers = res.data.listRolePermission;
            $("#name_role_submit").val(role.name);
            $("#memo_role_submit").val(role.memo);
            $("#version_role_submit").val(role.versions);
            $("#role_id_role_submit").val(role.role_id);
            for (var i = 0; i < listRolePers.length; i++) {
                var $dt = $("#rolePerssionGroup dt .r_" + listRolePers[i].code).parent();
                for (var j = 0; j < listRolePers[i].permission_value.length; j++) {
                    if (listRolePers[i].permission_value[j] == '1') {
                        $dt.siblings("dd").eq(j).find("input[type='checkbox']").prop("checked", true);
                        $dt.siblings("dd").eq(j).find(".layui-form-checkbox").addClass("layui-form-checked");
                    }
                }
                if($dt.siblings("dd").find("input[type='checkbox']").length==
                    $dt.siblings("dd").find("input[type='checkbox']:checked").length){
                    $dt.find("input[type='checkbox']").prop("checked", true);
                    $dt.find(".layui-form-checkbox").addClass("layui-form-checked");
                }
            }
            $("#form_submit :input").not(":button").prop("disabled", true);
        });
    });
}
/**
 * @title:<h3>查询权限值  <h3>
 * @author: loy
 * @date: 2018/10/23 14:17
 * @params
 * @return
 **/
function findEnumRoleMenu() {
    requestUtilParams.xhrGet(roleEditParams.action.findEnumRoleMenu,{async:false}).done(function (rs) {
        var list = rs.data;
        $("#rolePerssionGroup").empty();
        for(var i=0;i<list.length;i ++){
            var $dl = $("<dl></dl>");
            $dl.append("<dt class='permissionName' ><input type='checkbox' title='"+list[i].name+"' class='r_"+list[i].code+"'>" +
               "<input type='hidden' class='in_code' name='' value='"+list[i].code+"'>" +
                "<input type='hidden' class='in_permission_value' name='' value=''></dt>");
            $dl.append()
            var lists = list[i].roleValue.split(",");
            for(var a=0;a<lists.length;a ++){
                $dl.append("<dd><input type=\"checkbox\" title='"+lists[a]+"' class='r_"+list[i].code+"'></dd>");
            }
            $("#rolePerssionGroup").append($dl);
        }
        layui.use("form",function () {
            var form=layui.form;
            form.render();
        });
    });
};
/*
* @title:<h3> 新增角色 <h3>
* @author: loy
* @date: 2018/10/23 16:21
* @params
* @return
**/
function addRole() {
    if(checkStr()){
        //alert("1")
    var data = $("#form_submit").serialize();
    //console.log(data)
    requestUtilParams.xhr(roleEditParams.action.addRoel,data).done(function (rs) {
        alert(rs.message);
        $("#form_submit")[0].reset();
    });
    }
}
/**
 * @title:<h3> 修改角色 <h3>
 * @author: loy
 * @date: 2018/10/23 16:21
 * @params
 * @return
 **/
function updateRole() {
    if (checkStr()){
        var data = $("#form_submit").serialize();
        requestUtilParams.xhr(roleEditParams.action.updateRole,data).done(function (rs) {
            alert(rs.message);
            $("#btnClose").click();
        });
    }
}
/*
* @title:<h3> 验证输入的值是否为空 <h3>
* @author: loy
* @date: 2018/10/22 15:58
* @params
* @return
**/
function checkStr() {
    var str ="";
    var name = $("#name_role_submit").val();
    if($("#rolePerssionGroup input[type='checkbox']:checked").length==0){
        str +='至少选择一项角色权限\n';
    }
    if(name==null){
        str +='角色名称为空\n';
    }
    if(str.length>0){
        alert(str);
        return false;
    }else{
        //遍历角色权限
        var num =0;
        $("#rolePerssionGroup dl").each(function () {
            if($(this).find("input:checked").length==0){
                $(this).find(".in_code").attr("name","");
                $(this).find(".in_permission_value").attr("name","");
                return true;
            }
            $(this).find(".in_code").attr("name","listRolePermission["+num+"].code");
            var value = "";
            $(this).find("dd>input").each(function () {
                if($(this).prop("checked")){
                    value +="1";
                }else{
                    value +="0";
                }
            });
            $(this).find(".in_permission_value")
                .attr("name", "listRolePermission[" + num + "].permission_value").val(value);
            num++;
        });
        return true;
    }
}